<?php

namespace app\admin\model;

use think\Model;

class Travel extends Model
{
    // 表名
    protected $name = 'travel';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    
    // 追加属性
    protected $append = [
        'begintime_text',
        'endtime_text'
    ];
    
    public function activity()
    {
        return $this->belongsToMany('Activity','\app\common\model\TravelActivity');
    }

    public function oversea()
    {
        return $this->belongsToMany('Oversea','\app\common\model\TravelActivity','activity_id');
    }
    

    public function getUserScaleList()
    {
        return ['1' => '0-50人', '2' => '50-100人', '3' => '100-300人','4'=>'300-500人','5'=>'500-1000人','6'=>'1000人以上'];
    }

    public function getUserScaleTextAttr($value, $data)
    {        
        $value = $value ? $value : $data['user_scale'];
        $list = $this->getUserScaleList();
        return isset($list[$value]) ? $list[$value] : '';
    }

    public function getStateText($value, $data)
    {        
        //0 已提交 等待审核；1 审核通过（生成活动中）；2 报名中；3 已结束；4 审核未通过;5 已取消
        $value = $value ? $value : $data['state'];
        $list  = ['0' => '待审核', '1' => '审核通过（生成活动中）', '2' => '报名中','3'=>'已结束','4'=>'审核未通过','5'=>'已取消'];
        return isset($list[$value]) ? $list[$value] : '';
    }

    public function getStateList()
    {
        return ['0' => '待审核', '1' => '审核通过（生成活动中）', '2' => '报名中','3'=>'已结束','4'=>'审核未通过','5'=>'已取消'];
    } 

    public function getPromoteText($value, $data)
    {        
        //0 已提交 等待审核；1 审核通过（生成活动中）；2 报名中；3 已结束；4 审核未通过;5 已取消
        $value = $value ? $value : $data['is_promote'];
        $list  = ['0' => '不推广', '1' => '推广'];
        return isset($list[$value]) ? $list[$value] : '';
    }

    public function getBegintimeTextAttr($value, $data)
    {
        $value = $value ? $value : $data['begintime'];
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getEndtimeTextAttr($value, $data)
    {
        $value = $value ? $value : $data['endtime'];
        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    protected function setBegintimeAttr($value)
    {
        return $value && !is_numeric($value) ? strtotime($value) : $value;
    }

    protected function setEndtimeAttr($value)
    {
        return $value && !is_numeric($value) ? strtotime($value) : $value;
    }


}
